package com.taobao.api.domain;

import java.util.List;

import com.taobao.api.TaobaoObject;
import com.taobao.api.internal.mapping.ApiField;
import com.taobao.api.internal.mapping.ApiListField;

/**
 * 属性（指标）信息
 *
 * @author auto create
 * @since 1.0, null
 */
public class AttributeVO extends TaobaoObject {

	private static final long serialVersionUID = 6159465199566322732L;

	/**
	 * 1 : java.lang.Integer 
 2 : java.lang.Short 
 3 : java.lang.Long 
 4 : java.lang.Double 
 5 : java.lang.Float 
6 : java.lang.String 
7 : java.util.Date
	 */
	@ApiField("clazz_type")
	private Long clazzType;

	/**
	 * 属性编码CODE
	 */
	@ApiField("code")
	private String code;

	/**
	 * 属性描述信息
	 */
	@ApiField("description")
	private String description;

	/**
	 * 档案ID.档案定义了属性的取值范围。
可以通过document.get接口得到档案信息。
在根据ranges.get接口得到属性的取值范围。
	 */
	@ApiField("document_id")
	private Long documentId;

	/**
	 * 唯一标识
	 */
	@ApiField("id")
	private Long id;

	/**
	 * 属性必填字段：当创建模板或者实施匹配时可能会用到必填参数。如果某个属性有必填参数，则在进行创建模板或者实时匹配时需要对这个对象的Value字段赋值。
	 */
	@ApiListField("param_keys")
	@ApiField("param_key_v_o")
	private List<ParamKeyVO> paramKeys;

	/**
	 * 属性名称
	 */
	@ApiField("title")
	private String title;

	/**
	 * Top 的访问权限。按位与。1：可读，2：可写，4：可规则计算
	 */
	@ApiField("top_access")
	private Long topAccess;

	/**
	 * 属性所在的类型的唯一标识。
可以通过queryType接口查询到类型名称
	 */
	@ApiField("type_id")
	private Long typeId;

	/**
	 * 指标单位。保留字段
	 */
	@ApiField("unit")
	private String unit;

	public Long getClazzType() {
		return this.clazzType;
	}
	public void setClazzType(Long clazzType) {
		this.clazzType = clazzType;
	}

	public String getCode() {
		return this.code;
	}
	public void setCode(String code) {
		this.code = code;
	}

	public String getDescription() {
		return this.description;
	}
	public void setDescription(String description) {
		this.description = description;
	}

	public Long getDocumentId() {
		return this.documentId;
	}
	public void setDocumentId(Long documentId) {
		this.documentId = documentId;
	}

	public Long getId() {
		return this.id;
	}
	public void setId(Long id) {
		this.id = id;
	}

	public List<ParamKeyVO> getParamKeys() {
		return this.paramKeys;
	}
	public void setParamKeys(List<ParamKeyVO> paramKeys) {
		this.paramKeys = paramKeys;
	}

	public String getTitle() {
		return this.title;
	}
	public void setTitle(String title) {
		this.title = title;
	}

	public Long getTopAccess() {
		return this.topAccess;
	}
	public void setTopAccess(Long topAccess) {
		this.topAccess = topAccess;
	}

	public Long getTypeId() {
		return this.typeId;
	}
	public void setTypeId(Long typeId) {
		this.typeId = typeId;
	}

	public String getUnit() {
		return this.unit;
	}
	public void setUnit(String unit) {
		this.unit = unit;
	}

}
